package leetcode;

/**
 * 104. 二叉树的最大深度
 */
public class Solution104 {
    int maxDepth = 0;

    int res =0;
//    public int maxDepth(TreeNode root) {
//        if(root==null){
//            return maxDepth;
//        }
//        maxDepth(root,1);
//        return maxDepth;
//
//    }
//
//    public void maxDepth(TreeNode root,int i) {
//        if(root==null){
//            return;
//        }
//        maxDepth = Math.max(maxDepth,i);
//        maxDepth(root.left,i+1);
//        maxDepth(root.right,i+1);
//    }

//        public int maxDepth(TreeNode root) {
//            traverse(root);
//            return res;
//        }
//
//        public void traverse(TreeNode root){
//            if(root==null){
//                return;
//            }
//            maxDepth++;
//            if(root.left==null && root.right==null){
//                res = Math.max(res,maxDepth);
//            }
//            traverse(root.left);
//            traverse(root.right);
//            maxDepth--;
//
//        }

    public int maxDepth(TreeNode root) {
      if(root  ==null){
          return 0;
      }
      int left = maxDepth(root.left);
      int right = maxDepth(root.right);
      return (Math.max(left,right)+1);
    }
}


  class TreeNode {
     int val;
     TreeNode left;
     TreeNode right;
     TreeNode() {}
     TreeNode(int val) { this.val = val; }
     TreeNode(int val, TreeNode left, TreeNode right) {
         this.val = val;
         this.left = left;
         this.right = right;
     }
}
